Robots have been used by mankind to perform relatively simplistic tasks for years. Typically, a robot is programmed to perform the relatively simplistic task (e.g., assembling a portion of a car), by the displacement or movement of a mechanical appendage using a programmable controller. Robots can also be programmed to perform other simplistic tasks like moving, obstacle avoiding, etc.
Autonomous mobile robots can usually require that their functions and behaviors be programmed either explicitly or by means of algorithmic building blocks that, when combined or executed in concert, generate the desired robotic behavior. However, using such contemporary approaches it is difficult to program sophisticated animal-like or human-like behaviors. Thus, what is needed are methods, systems, devices, and apparatuses with which a robot can be trained to become autonomous using data collected by a living subject in a controlled environment.